CROSS REFERENCES TO RELATED APPLICATIONS
COPYRIGHT NOTICE
THE FIELD OF THE INVENTION
BACKGROUND OF THE INVENTION
SUMMARY OF THE INVENTION
BRIEF DESCRIPTION OF THE DRAWINGS
THE DESCRIPTION
TABLE OF CONTENTS
OVERVIEW
DEFINITIONS
SYSTEM INTRODUCTION
Browser
Browser and HTML Compatibility
Example Method of Communicating Between a Wireless Communications Device and a Web Server
Example User Interface
WIRELESS NETWORK TOPOLOGY
Intranet Topology
CONTENT LAYER
Compact Markup Language (CML)
Compact Data Structure Notation
CML Structure
CML Tags
Tag Definitions
HTML Element Functionality
The Head Elements
The Body
TRANSFER LAYER
Wireless Client Software Block Diagram
Compact Transfer Protocol
CTP Structure
CTP Requests
CTP Responses
CTP Data Types
CTP Commands
Hot Link Indices
Encoding Indirect Hyperlinks
Forms Processing
Encoding Normal Form Submissions
Encoding Server Dependent Form Submissions
Secure Communications
Security Requirements
Security Protocol
Strength and Possible Attacks
Encryption Algorithms
Administration
RELIABLE MESSAGE LAYER AND RELIABLE MESSAGE PROTOCOL
On Wireless Networks
The RMP Header
The RMP Data Area
Re-transmission of Lost Packets
The Reliable Message Protocol
On Wireline Networks
Reliable Message Layer Application Program Interface (API)
Using the Reliable Message Layer on the Wireless Communications Device
Implementation of RMP
Implementation of RMP on the Proxy Server
Implementation of RMP on the Wireless Communications Device
WIRELESS NETWORK INTERFACE
Structure of the Wireless Network Interface
Enhancements to the Network Library
HEADER COMPRESSION
The C-UDP Header
The C-UDP Header for Compressed Packets
The C-UDP Header for Generic UDP Packets
The C-UDP Header for Other IP Packets
PROXY SERVER DETAILS
COMMUNICATIONS SYSTEM DETAILS
Tunneling Support
ALTERNATIVE SYSTEM
THE CLAIMS
THE ABSTRACT
This application relates to the following group of applications. Each application in the group relates to, and incorporates by reference, each other application in the group. The invention of each application is assigned to the assignee of this invention. The group of applications includes the following.
U.S. patent application Ser. No. 09/087,515, entitled xe2x80x9cMethod and Apparatus for Communicating Information over Low Bandwidth Communications Networks,xe2x80x9d filed May 29, 1998, having inventors Jeffrey C. Hawkins, Joseph K. Sipher and Scott D. Lincke.
U.S. patent application Ser. No. 09/086,888, entitled xe2x80x9cMethod and System for Secure Communications,xe2x80x9d filed May 29, 1998, having inventors Ronald Marianetti II and Scott D. Lincke.
U.S. patent application Ser. No. 091087,552, entitled xe2x80x9cMethod and System for Wireless Internet Access,xe2x80x9d filed May 29, 1998, having inventor Jeffrey C. Hawkins.
A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosures, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.
This invention relates to the field of information communications. In particular, the invention relates to low bandwidth network access to Internet based information.
Wireless communications provides one method for mobile users to communicate to a wired network. In particular, wireless communications allows consumers to receive and send information. Examples of such wireless networks include cellular phones, pager systems, and satellite systems. The wireless network systems can be broken into relatively high bandwidth and low bandwidth systems. High bandwidth systems are for example satellite systems. Lower bandwidth systems include cellular phones and mobile radio systems. Still lower bandwidth systems include pager networks and low bandwidth packet switched radio systems (e.g., the BellSouth Mobile Data Mobitex(trademark) system).
For users to access information on the Internet using wireless communications, the method in which they access the information is highly dependent on the type of wireless communications available to the user. For example on a high bandwidth network such as a wired network or a satellite system, the usual techniques for browsing data on the Internet are adequate.
An important source of Internet based data is the data accessible through the World Wide Web (referred to as the Web). The following describes the usual techniques for Web browsing. A user selects a web site associated with a URL (Uniform Resource Locator). The URL represents the address of the entry point to the web site (e.g., the home page for the web site). For example, the user may select a web site that supplies restaurant reviews. The user""s computer (the client) makes an HTTP (HyperText Transport Protocol) request to the web server hosting the web site. The client typically needs to make multiple HTTP requests of the web server. For example, to load the restaurant locator home page, multiple HTTP requests are needed to download all the graphics, frame content, etc. Next, the user will typically need to browse through a number of linked pages to get to the page from which a search for restaurants can be made. Even if the user is immediately presented with the desired page, a great deal of information has had to been downloaded from the web site (e.g., graphics, advertisements, etc.). This additional information makes for a visually rich browsing experience. The user fills in the information on this page and selects a search button. The client makes another series of HTTP requests of the web server. The web server supplies the client with the requested information in an HTML formatted web page. The web page typically includes links to more graphics and advertisements that need to be accessed by the client.
For low bandwidth networks this technique does not work well. Too much bandwidth is needed to download the images. Also, low bandwidth networks typically charge per byte transmitted and can be very expensive if large amounts of data are downloaded. Thus, low bandwidth networks are desirable to use for accessing information on the Web but only if the amount of data transferred over the network is small. Specifically for packet data networks, the cost of transmitting messages increases with the number of packets transmitted. The cost of transmitting multiple packet messages is therefore a formidable obstacle for packet data network customer use.
One area in which Web access is becoming more desirable is in handheld devices. Handheld devices are emerging as important computer devices. Handheld devices typically implement a relatively small, but important function set. Examples of such handheld devices are the PalmPilot(trademark) handheld device available from 3COM Corporation, Inc. of Santa Clara, Calif. Examples of the function set supported are address books, calendars, and task lists.
In the past, wireless communications with handheld devices have been performed using wireless modems, such as are available from Novatel Communications, Inc. of Calgary, Alberta, or wireless transceivers for dedicated wireless data access network. Essentially a wireless modem operates in the cellular phone network and supplies approximately 9600 baud bandwidth to the handheld device. This allows the user to access the web at a relatively low bandwidth.
An issue with using handheld devices to access the Web is related to their capabilities. Even if connected to a high bandwidth network, most handheld devices do not have the screen area or the processing power to display the graphics and large amounts of text in a typical web page. However, it is still desirable to support the browsing of information on the Web using handheld devices. It is further desirable that the handheld devices be able to use networks that have relatively low bandwidths.
Some of the methods by which previous systems addressed some of the issues described above are now described.
One method of reducing the amount of data transferred from the web site to the client is to cache the web site data locally on the client. For example, the Netscape Communicator(trademark) browser application caches web pages on the client. Each cached web page is associated with a URL. Thus, when the client requests a web page, the Netscape Communicator browser attempts to use previously cached web pages before downloading the pages from the web site. Another type of caching program is NetAttache(trademark), available from Tympany, Inc. of Mountain View, Calif. The NetAttache program downloads all the web pages from a given web site. The web pages are all cached on the client. A NetAttache server runs locally on the client. A browser can then be used to browse through the local copy of the web pages. The problem caching is that the pages still need to be retrieved from the server before they can be reused and there can still be a significant number of connections made to the web server.
Alternatively, some programs are customized for accessing specific information from particular web sites. Examples of these programs are Java applets that reside on the client or are served to the client by a server. The applets can then be reused to access information from a web site. An example of a specialized program for accessing specific information is the RealVideo Player from Real Networks, Inc. A problem with these types of programs is that they are very specific to a particular type of content. For example, they do not use standard HTML (hypertext markup language) constructs. This means that web site developers cannot use standard web site development tools to create their sites.
Therefore what is desired is an improved system and method for handheld device to access Internet information over relative low bandwidth networks.
The following summarizes various embodiments and aspects of the invention. Some embodiments of the invention provide compression techniques that enable a wireless communications device to complete transactions by exchanging of a minimum number of data packets with a proxy server.
One embodiment of the invention includes a method for completing a transaction between a client and a proxy server. The method for completing a transaction comprises transmitting a single request message from the client to the proxy server, and transmitting a single response message from the proxy server to the client. The request message comprises packets of data. Transmitting the request message comprises placing in the request message a base document uniform resource locator followed by compressed data. The compressed data comprises field values and field indices corresponding to fields in a hyperlink document, and an indication of use of a hyperlink document. Field values and field indices correspond to fields in the hyperlink document. The number of packets is small and the size of each packet is small.
Another embodiment of the invention includes a method for requesting a hyperlink document. The hyperlink document is indicated by a first hyperlink in a base document. The method for requesting the hyperlink document comprises sending a compact representation of the hyperlink document, and transmitting the compact representation of the hyperlink document to a proxy server. The compact representation of the hyperlink document comprises a base document uniform resource locator followed by a compact representation of the first hyperlink and a compact representation of a hash value corresponding to the first hyperlink.
Another embodiment of the invention includes a method for transmitting a first message in packets of data to proxy server processing resources. The first message corresponds to a hypertext document. The hypertext document has input fields and control fields. The method for transmitting the message comprises submitting compressed representations of data to client processing resources, and transmitting packets of data from client processing resources to server processing resources. The compressed representations of data correspond to input fields and control fields formatted according to a compact transfer protocol. The compressed representations are provided for text and name attributes corresponding to input fields, and values and value attributes corresponding to control fields. The number of packets is small and the size of each packet is small. In some embodiments, the hypertext document comprises a server dependent form.
Another embodiment of the invention includes a method of transforming a first message into a standard object data request. The method comprises combining the first message received from client processing resources with a hypertext markup language hyperlink document. The first message comprises field values and field indices corresponding to fields in the hypertext markup language hyperlink document.
Another embodiment of the invention includes a method of converting a data object into a second message comprising translating the data object into a compact markup language. The compact markup language comprises a stream of data with embedded tags. The tags comprise binary data.
Another embodiment of the invention includes a method of receiving a compressed hyperlink represented by a hyperlink tag. The receiving method comprises submitting a compressed representation of a uniform resource locator comprising the hyperlink tag and a client hash value, indicating tag representation of the hyperlink, and determining whether the hyperlink tag corresponds to a hyperlink document version used by the proxy server. The hyperlink tag comprises a compact place holder for the hyperlink. The proxy server determines whether the hyperlink tag corresponds to the hyperlink document version used by comparing the client hash value with a server hash value.
Another embodiment of the invention includes a method of image rendering for reduced packet communications between a proxy server to a client. The rendering method comprises determining client characteristics, rendering an image, and compressing the image.
Another embodiment of the invention includes a method for requesting data objects from a source of data. The requesting method comprises submitting compressed representations of field values and field indices, transmitting a first message in packets of data from a client to a server, transforming the first message into a standard object data request, and transmitting the standard object data request to the source of data.
Another embodiment of the invention includes a method for receiving an HTML data object from a source of data. The receiving method comprises fetching the HTML data object, compressing the HTML data object, passing representations of the data object to a content rendering layer, and rendering the representations for viewing.
Another embodiment of the invention includes a method for formatting a packet of data. The formatting method comprises the following four steps. Determining that the packet destination is a proxy server. Setting a first bit in a compressed delivery protocol header to indicate that the packet destination is the proxy server. Placing bit flags indicating inclusion of optional delivery and Internet protocol fields. Placing a source port number identifying a client in the compressed delivery protocol header.
Another embodiment of the invention includes a proxy server comprising means for transforming a first message into a standard object data request, and means for converting a data object into a second message in a compact markup language.
Another embodiment of the invention includes a client comprising means for requesting a hyperlink document in a compressed form.
Another embodiment of the invention includes a communications system comprising a source of data, a client, and a proxy server. The client comprises means for requesting a hyperlink document in a compressed form. The proxy server comprises means for transforming a first message into a standard object data request, and means for converting a data object into a second message in a compact markup language.